#pragma once
#include <QtCore/qglobal.h>
#include "callbackInterface.h"
#include <memory>

#ifdef USEREVENTLIBDLL  
#define USEREVENTAPI Q_DECL_EXPORT
#else  
#define USEREVENTAPI  Q_DECL_IMPORT
#endif  

/**
 * @brief 回调类接口
 */

class USEREVENTAPI IEventCall
{
public:
    /**
     * @brief notifyMeasureMsg 通知测量窗口测量结果消息
     * @param msg 测量结果消息
     */
    virtual void notifyMeasureMsg(char *msg) = 0;
};

/**
 * @brief 回调类工厂
 */
class USEREVENTAPI IEventCallBackFactory
{
public:
    /**
     * @brief create 工程建造回调接口
     * @param icnmmsg 回调测量结果的闭包接口
     */
    typedef std::shared_ptr<IEventCall> ptrEventCallback;
    ptrEventCallback create(IClosureNotifyMMsg* icnmmsg);
};
